package br.uff.probabilidade.modelo;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;

public class Legenda {
	private static final int LADO_QUADRADO = 8;
	private Rectangle boundingBox;
	private String descricao;
	private String descricaoComplemento;
	private Point posicao;
	private boolean visivel = true;
	private Color cor;
	
	public Legenda(String descricao,Point posicao,Color cor){
		this.descricao = descricao;
		this.posicao = posicao;
		this.cor=cor;
		this.boundingBox = new Rectangle(posicao.x-4, posicao.y-4, 0, LADO_QUADRADO+8);
	}
	
	public Legenda(String descricao,Color cor){
		this.descricao = descricao;		
		this.cor=cor;
		this.boundingBox = new Rectangle(0, 0, 0, 0);
	}
	
	public Legenda(String descricao,String descricaoComplemento,Color cor){
		this.descricao = descricao;		
		this.cor=cor;
		this.descricaoComplemento = descricaoComplemento;
		this.boundingBox = new Rectangle(0, 0, 0, 0);
	}
	
	public void desenha(Graphics g){		
		Color oldColor = g.getColor();
		
		//if(this.isVisivel()){
			g.setColor(Color.WHITE);
			g.fillRect(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height);
		//}	
		g.setColor(oldColor);
		g.drawRect(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height);
	
		
		g.setColor(this.cor);
		g.fillRect(posicao.x, posicao.y, LADO_QUADRADO, LADO_QUADRADO);
		g.setColor(oldColor);
		g.drawRect(posicao.x, posicao.y, LADO_QUADRADO, LADO_QUADRADO);		
		g.drawString(this.descricao, posicao.x+LADO_QUADRADO+5, posicao.y+LADO_QUADRADO);
	}
	
	public void hidde(){
		this.visivel = false;		
	}
	
	public void setVisivel(boolean visivel){
		this.visivel = visivel;
	}

	public String getDescricao() {
		return descricao;
	}

	public Point getPosicao() {
		return posicao;
	}

	//public boolean isVisivel() {
//		return visivel;
	//}

	public Color getCor() {
		return cor;
	}
	
	 public boolean checkClick(Point click) {        
        // your code here
    	if (click.x>=this.boundingBox.x && click.x<=this.boundingBox.x+boundingBox.width && click.y>=this.boundingBox.y && click.y<=this.boundingBox.y+boundingBox.height){
    		System.out.println("Clicou Legenda");
    		return true;
    	}
    	return false;
    }

	public void setPosicao(Point posicao) {
		this.posicao = posicao;
		this.boundingBox = new Rectangle(posicao.x-4, posicao.y-4, 230, LADO_QUADRADO+8);
	}

	public void setCor(Color cor) {
		this.cor = cor;
	}

	public String getDescricaoComplemento() {
		return descricaoComplemento;
	} 
	
}
